#ifndef _ANO_IMU_DATA_H_
#define _ANO_IMU_DATA_H_


//==引用
#include "include.h"


//==定义

typedef float vec3_f[3];
typedef s16 vec3_s16[3];

typedef struct
{
	//
	u8 data_sta;  //0不可用  1可用
	float IEM[3][3];
	//
	vec3_f f_gyrRaw;//陀螺仪原始数据
	vec3_f f_accRaw;//加速度计原始数据
	//
	vec3_f f_gyr_dps;   //陀螺仪角速度值（单位换算后）
	vec3_f f_acc_cmpss;	//加速度计加速度值（单位换算后）
	//
	vec3_f f_gyr_dps_nb;     //转换到机体坐标系的角速度（deg/s）
	vec3_f f_gyr_radps_nb;   //弧度制下的角速度
	vec3_f f_acc_cmpss_nb;   //转换到机体坐标系的加速度（cm/s² 或 g）
	//
	float f_temperature;
	vec3_f gyrSensitivity;
	vec3_f accSensitivity;
	//
	
}_imuData_st;

typedef struct
{
	u8 test_u8[4];
	float test[3];
}__attribute__ ((__packed__)) _test_st;
extern _test_st test_st;


//==数据声明
extern _imuData_st st_imuData;//成为全局变量

//==函数声明

//static


//public

/*IMU传感器灵敏度初始化*/
void ImuSensitivityInit(u8 ins_calibrated,vec3_f accRefValue);
/*IMU传感器数据获取*/
void ImuDataGet(vec3_s16 gyrRaw,vec3_s16 accRaw);
/*IMU温度获取*/
void ImuTemperatureGet(float f_temperature);
/*IMU数据计算处理*/
void ImuDataCalcu(u8 ins_calibrated,vec3_f gyrOffset,vec3_f accOffset,float IEM[3][3]);

	
#endif


